<HTML>
<HEAD>
<!-- This HTML file has been created by texi2html 1.45
     from schintro.txi on 19 Febuary 1997 -->

<TITLE>An Introduction to Scheme and its Implementation - Procedural Abstraction</TITLE>
</HEAD>
<BODY>
Go to the <A HREF="schintro_1.html">first</A>, <A HREF="schintro_106.html">previous</A>, <A HREF="schintro_108.html">next</A>, <A HREF="schintro_143.html">last</A> section, <A HREF="schintro_toc.html">table of contents</A>.
<HR>


<H2><A NAME="SEC126" HREF="schintro_toc.html#SEC126">Procedural Abstraction</A></H2>

<P>
Scheme's main abstraction mechanism is <EM>procedural abstraction</EM>;
we define procedures that represent common operations, and "specialize"
those procedures by passing arguments:  by passing different arguments,w
we can make the same routine do somewhat different things, depending
on the particular data it encounters at run time.

</P>
<P>
Since Scheme procedures are first-class data objects, we can customize
procedures in terms of other procedures.  We can write a general
procedure with a "hole" in it, to be specialized by another procedure.

</P>
<HR>
Go to the <A HREF="schintro_1.html">first</A>, <A HREF="schintro_106.html">previous</A>, <A HREF="schintro_108.html">next</A>, <A HREF="schintro_143.html">last</A> section, <A HREF="schintro_toc.html">table of contents</A>.
</BODY>
</HTML>
